/*
moxl - Modular XML Library
Copyright (c) 2007, Malcolm Sparks

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*/
package moxl.parser.model;

import java.util.Iterator;
import java.util.LinkedList;

import moxl.parser.markup.types.OpenElementTagMarkup;

public class OpenElementTagMarkupStack
{
	LinkedList<OpenElementTagMarkup> list = new LinkedList<OpenElementTagMarkup>();
	
	// When support for JDK 5 is dropped, use list.descendingIterator() instead. 
	LinkedList<OpenElementTagMarkup> reverseList = new LinkedList<OpenElementTagMarkup>();

	public void addLast(OpenElementTagMarkup markup)
	{
		list.addLast(markup);
		reverseList.addFirst(markup);
	}

	public OpenElementTagMarkup removeLast()
	{
		reverseList.removeFirst();
		return list.removeLast();
	}

	public String getDeepestNamespace()
	{
		for (Iterator<OpenElementTagMarkup> it = reverseList.iterator(); it.hasNext();)
		{
			OpenElementTagMarkup last = it.next();
			String ns = last.getAttributeValue("xmlns");
			if (ns != null)
			{
				return ns;
			}
		}
		return "";
	}

}
